金牌、银牌、铜牌 | 您所在的位置:网站首页 › acm 银牌 › 金牌、银牌、铜牌 |
金牌、银牌、铜牌
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
Acm——大学中四大竞赛之首——是极具挑战性的大学生竞赛形式。在一场acm比赛中,一个参赛队伍由三人组合而成,在最短的时间内做出尽可能多的题目而且要尽量少提交错误代码,这样才能得到更高的排名。现在让我们模拟一次不正规的acm比赛,假设在比赛开始后30分钟(这时已经有不少同学提交了代码,在rating中已经出现),到比赛结束前,又有新的同学提交(在rating中出现),同时rating在不断变化着,还有一些同学因为一些原因中途退出比赛(这时rating中自动删除,当然在正式比赛中不会有这种情况)。最后终于比赛结束啦,看看rating,都有谁能拿到奖牌呢? Input第一行一个整数n(nnext=q; q->next=t; break; } else { p=p->next; t=t->next; } } if(flag) { p->next=q; q->next=NULL; } } void Q() { cnt--; struct node *p,*t; char wh[30]; scanf("%s",wh); p=head; t=p->next; while(t) { if(strcmp(wh,t->name)==0) { p->next=t->next; free(t); break; } else { p=p->next; t=p->next; } } } void C() { char wh[30]; int x; scanf("%s %d",wh,&x); struct node *p,*q,*t; p=head; q=head->next; while(q) { if(strcmp(wh,q->name)==0) { q->score+=x; p->next=q->next; break; } else { p=p->next; q=q->next; } } p=head; t=head->next; int flag=1; while(t) { if(t->scorescore) { flag=0; p->next=q; q->next=t; break; } else { p=p->next; t=t->next; } } if(flag) { t->next=q; q->next=NULL; } } void S() { struct node *p; p=head->next; while(p) { printf("%s %d\n",p->name,p->score); p=p->next; } printf("\n"); } void O() { struct node *p; printf("#1 :"); int k; p=head->next; while(p) { printf(" %s",p->name); k=p->score; p=p->next; head=head->next; if(k==p->score&&p) continue; else break; } printf("\n"); printf("#2 :"); int cc=0; p=head->next; while(p) { printf(" %s",p->name); cc++; k=p->score; head=head->next; p=p->next; if(cc>=2) { if(k==p->score) continue; else break; } } printf("\n"); printf("#3 :"); int ccc=0; p=head->next; while(p) { printf(" %s",p->name); ccc++; k=p->score; head=head->next; p=p->next; if(ccc>=3) { if(k==p->score) continue; else break; } } printf("\n"); } int main() { int n,i; char ch[25]; scanf("%d",&n); cnt=n; struct node *p,*q; head=(struct node*)malloc(sizeof(struct node)); head->next=NULL; p=head; for(i=0; iname,&q->score); q->next=NULL; p->next=q; p=p->next; } while(~scanf("%s",ch)) { if(ch[0]=='A') { A(); } else if(ch[0]=='Q') { Q(); } else if(ch[0]=='C') { C(); } else if(ch[0]=='S') { S(); } else if(ch[0]=='O') { O(); break; } } return 0; } |
CopyRight 2018-2019 实验室设备网 版权所有 |